<?php
class Email extends Onecore_Controller
{
    public function __construct() {
        parent::__construct();
        $this->load->library('email');
        $this->load->model("grupos_model");
        $this->load->model("users_model");
        $this->load->model('rols_model');
    }
    public function sendToGroup(){
        $uid  =  $this->session->userdata('uid');
        $gid = $this->input->post('GrupoId');
        $message = $this->input->post('Message');
        $title = $this->input->post('Title');
        $success = true;
        $mensaje = "Correo enviado en forma exitosa";
        $errorList = array();
        
        $members = $this->rols_model->getMembersByGroupId($gid);
        $grupo = $this->grupos_model->getByGrupoId($gid);
        $user = $this->users_model->getByUserId($uid);
        
        if(!empty($grupo) && !empty($user)){
            $user = $user[0];
            $grupo = $grupo[0];
            $userName = $user->nombre1.' '.$user->nombre2.' '.
                        $user->apellido1.' '.$user->apellido2;
            foreach($members as $member){
                $this->email->clear();
                $memberName =   $member->nombre1.' '.$member->nombre2.' '.
                                $member->apellido1.' '.$member->apellido2;

                $this->email->from($user->email, $userName);
                $this->email->to($member->email); 
                $this->email->subject($title);
                $this->email->message($message);	

                if ( ! $this->email->send())
                {
                    $mensaje = "Error en el servidor de correos.";
                    $success = false;
                    //$errorList = array("Error" =>'Error al intentar enviar correo a los miembros del Grupo, consulte al administrador');
                }
            }
        }
        else{
            $success = false;
            $mensaje = "Error en los parametros recibidos de Grupo.";
            $errorList = array("Error" =>'El identificador de Grupo debe ser valido, y el Grupo debe existir.');
        }
        $res = array(
            "success" => $success,
            "msg" => $mensaje,
            "errors" => $errorList
        );
        $this->layout->printLike(json_encode($res), "json");
    }
    public function sendToUser(){
        $uid  =  $this->session->userdata('uid');
        $uidReceptor  =  $this->input->post('UserId');
        $message = $this->input->post('Message');
        $title = $this->input->post('Title');
        
        $success = true;
        $mensaje = "Correo enviado en forma exitosa";
        $errorList = array();
        
        $userReceptor = $this->users_model->getByUserId($uidReceptor);
        $userEmisor = $this->users_model->getByUserId($uid);
        if(!empty($userReceptor) && !empty($userEmisor)){
            $userEmisor = $userEmisor[0];
            $userReceptor = $userReceptor[0];
            $userName = $userEmisor->nombre1.' '.$userEmisor->nombre2.' '.
                        $userEmisor->apellido1.' '.$userEmisor->apellido2;
            
            $this->email->clear();
            $receptorName =   $userReceptor->nombre1.' '.$userReceptor->nombre2.' '.
                            $userReceptor->apellido1.' '.$userReceptor->apellido2;

            $this->email->from($userEmisor->email, $userName);
            $this->email->to($userReceptor->email); 
            $this->email->subject($title);
            $this->email->message($message);	

            if ( ! $this->email->send())
            {
                $success = false;
                $mensaje = "Error en el servidor de correos.";
                $errorList = array('Error'=>'No se pudo enviar correo ah <strong>'.$userReceptor->email.'<strong>');
            }
        }
        else{
            $success = false;
            $mensaje = "Error en los parametros recibidos de Usuario receptor.";
            $errorList = array("Error" =>'El identificador de Usuario debe ser valido, y el Usuario debe existir.');
        }
        $res = array(
            "success" => $success,
            "msg" => $mensaje,
            "errors" => $errorList
        );
        $this->layout->printLike(json_encode($res), "json");
    }
}
